package com.hy.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hy.medicine.MedicineStock;
import com.hy.medicine.MedicineStockRecord;
import com.hy.medicine.dto.*;
import com.hy.medicine.vo.MedicineStockVO;
import com.hy.util.Result;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 药品库存管理Service
 */
public interface MedicineStockService extends IService<MedicineStock> {
    /**
     * 查询库存列表
     */
    Result getStockList(StockQueryDTO dto);

    /**
     * 查询库存变动记录
     */
    Result getStockRecords(StockRecordQueryDTO dto);

    /**
     * 药品入库
     */
    Result stockIn(StockOperateDTO dto);

    /**
     * 药品出库
     */
    Result stockOut(StockOperateDTO dto);

    /**
     * 库存调整
     */
    Result adjustStock(StockOperateDTO dto);

    /**
     * 获取库存统计信息
     */
    Result getStockStats();

    @Transactional(rollbackFor = Exception.class)
    Result batchStockIn(List<StockOperateDTO> dtoList);
}
